- Friday, September 27, 2024
Navigating disagreements and trade-offs is an inherent aspect of designing digital projects, as highlighted by James Blizzard in a recent blog post for Browser London. Disagreements, while often seen as points of friction, can actually serve as catalysts for innovation and better ideas. Blizzard references science fiction writer Robert A. Heinlein, emphasizing that learning often comes from engaging with differing perspectives rather than from agreement. The blog delves into the concept of digital experience architecture (DXA), which is crucial for creating effective user experiences. This architecture is built on three pillars: people, product, and platform. The people component involves cross-functional teams that collaborate to enhance user experiences, while the product pillar focuses on the offerings delivered to users, whether they are physical goods, services, or digital solutions. A successful DXA requires a holistic approach that balances user needs, business objectives, and technical feasibility, often necessitating trade-offs and strategic decision-making. Blizzard stresses the importance of communication in technical decision-making, particularly the role of UX designers in advocating for user-centric design while also understanding technical constraints. He notes that ideas must be grounded in technical reality, and that collaboration between technical leaders and designers is essential. The blog highlights the need to evaluate various technical options, weighing factors such as scalability, maintainability, and performance against the allure of cutting-edge solutions. Effective decision-making strategies are also discussed, with an emphasis on involving stakeholders and defining clear success criteria. This alignment helps prevent wasted effort and ensures that all voices are heard during discussions. Blizzard advocates for active listening and constructive debate, which can lead to compromises and innovative solutions. In conclusion, navigating technical disagreements and architectural trade-offs is a vital skill for teams engaged in digital projects. By fostering open communication and collaborative problem-solving, teams can turn challenges into opportunities for growth and innovation. The focus should remain on delivering value to users and achieving business success, ultimately creating digital products that meet current needs while laying the groundwork for future advancements.
- Thursday, May 30, 2024
Design system experts from Bumble, GitHub, and HP discuss leveraging the new Code Connect feature to integrate design and code, highlighting the importance of a shared language and seamless workflow. They emphasize the need for continuous collaboration and the adoption of best practices to maximize the utility of design systems, ensuring consistency and reducing friction between designers and developers.
- Tuesday, May 28, 2024
A facilitator helps others understand, collaborate, and create, fostering accessible interactions within a project. Instead of adopting an "expert" mindset, designers should support diverse community stakeholders, encouraging open communication, various perspectives, and shared understanding.
- Tuesday, March 26, 2024
Brad Frost, author of Atomic Design, shares his thoughts on why we should build a universal design system, how he uses AI to elevate design systems, how design systems designers can succeed in an AI world, the highest leverage activities for DS designers to do, and how designers can communicate better with engineers.
- Monday, September 16, 2024
Brainstorming at least two distinct designs when creating software allows you to compare and identify the best solution and potentially combine ideas from both. This requires more upfront effort, but prevents costly rework later and improves design quality.
- Monday, March 4, 2024
Software engineers should propose solutions, not just problems, and focus on team goals over just personal goals. Collaboration trumps code perfection. Software engineers should build relationships for influence, as building trust makes it easier to get buy-in and support for one’s ideas.
- Friday, May 17, 2024
Design docs outline the implementation strategy and key design decisions for a software project. They help identify potential issues early on, achieve consensus, and ensure cross-cutting concerns are addressed. They're used extensively at Google for every software project and for documentation and knowledge sharing.
- Friday, May 31, 2024
This article challenges three common engineering leadership anti-patterns. First, it argues against always avoiding micromanagement, suggesting that leaders should engage in "conflict mining" to understand context and write down the details of company strategies. Second, it advocates for measuring imperfect but useful metrics over waiting for perfect ones. Lastly, it challenges the idea of managers as umbrellas, suggesting that exposing teams to the "gory details" and providing less buffered information is probably better in the long run.
- Friday, May 24, 2024
Mural combines design thinking and Agile methodologies, enabling teams to visualize ideas, prioritize tasks, and align strategies effectively. The process enhances collaboration through visual tools, anonymous voting, and customizable templates, making it easier to manage complex projects and gather client feedback in real time.
- Tuesday, March 5, 2024
Engineering teams should practice blameless culture. Assigning blame to negative incidents can hinder collaboration and growth. Mistakes should be treated as a team responsibility. A blameless culture creates psychological safety as opinions are valued, allowing lessons to be learned from incidents and encouraging collaboration.
- Monday, July 22, 2024
Does shipping digital experiences quickly mean compromising on quality? Not necessarily. AI and visual development create new ways to build, iterate upon, and optimize applications and websites. This live session will cut through the hype and provide a realistic view of how traditional CMS architecture misses the mark and how emerging technologies address long-standing challenges: > How visual development + AI can dramatically accelerate your workflow > The power of Generative UI and Structured UI in modern web development > Real-world examples of organizations shipping digital experiences 10x faster
- Wednesday, October 2, 2024
Nathan Beck, a digital product designer based in Amsterdam, explores the intricate journey of design in his essay "The Roads Not Taken." He likens the design process to navigating forest trails, where each decision leads to a unique path, often obscured by the complexity of choices made along the way. The act of designing is portrayed as a series of forks in the road, where the final solution is shaped by countless small and significant decisions. Upon reflection, designers often find the path behind them cluttered and difficult to retrace, emphasizing the importance of understanding and articulating the rationale behind their design choices. Beck highlights the necessity of defending one’s design work during critiques and presentations, where feedback can be both challenging and enlightening. He draws a parallel to the philosophy of Bob Ross, who famously stated that "we don’t make mistakes," suggesting that what are often perceived as errors can instead be viewed as "happy accidents." This distinction, as explained by Don Norman, lies in the intention behind actions—slips occur when the action does not align with the intended outcome, while mistakes arise from a lack of understanding. The essay delves into the significance of exploration in the design process. Beck argues that rushing to a solution can be detrimental, as true exploration involves questioning the problem itself and considering various potential interventions. He acknowledges that while mapping out possibilities is essential, it also reveals the limitations of knowledge—what is known and what remains unknowable. Designers face both intrinsic and extrinsic constraints that can limit their explorations, yet these boundaries can also inspire creativity and innovation. As designers navigate their creative journeys, they must balance exploration with purpose. Beck introduces the concept of "design discovery," which emphasizes uncovering the unknown rather than merely exploring for curiosity's sake. This process involves rationalizing design decisions and reflecting on overlooked aspects, allowing designers to retrace their steps and consider alternative paths. The essay references Robert Frost’s poem "The Road Not Taken," illustrating how decisions can be reframed in retrospect. Beck suggests that while designers may not always consciously choose their paths, the act of reflecting on their choices can lead to greater understanding and intentionality in future projects. He concludes by reiterating that the creative process is not about avoiding mistakes but embracing the journey of discovery, where happy accidents can lead to unexpected insights and growth. In addition to his reflections, Beck provides further reading recommendations, including works by Daniel Kahneman and Don Norman, which delve into the psychology of decision-making and design. Through this exploration, he encourages designers to cultivate curiosity and patience, ultimately fostering a richer experience in their creative endeavors.
- Tuesday, May 21, 2024
Designers should introduce themselves lightheartedly to stand out in interviews. They must describe the project context, including the deadline, team size, and responsibilities. They should highlight research methods, share sketches and solutions, and discuss constraints, user advocacy, and lessons learned to showcase their problem-solving and adaptability.
- Friday, September 13, 2024
It's important to consistently communicate team priorities and frame tradeoffs clearly when handling high-priority requests from leadership. The "steelmanning" technique, which involves thoroughly understanding and presenting the strongest case for new requests to make more informed decisions, can also be useful.
- Tuesday, May 21, 2024
Combining Marketing and Design enhances end-to-end user experience and should be unified under one leader for efficient decision-making. Companies should focus on customer experiences from awareness to product championing, fostering collaboration, and "Yes, and..." thinking across departments.
- Tuesday, March 26, 2024
Not every tool in a designer’s toolbox is suited for every challenge — a part of being a good designer is knowing which tool is the most appropriate for the specific problem. Instead of focusing on tools alone, designers should visualize and validate visions, continuously cultivate consistency, demonstrate value, and rationalize design decisions.
- Wednesday, October 2, 2024
In the discourse surrounding the justification of design's impact, particularly in user-centered design (UCD) roles, there is a growing concern about how to effectively measure and communicate the value these roles bring to organizations. The author, Andrew Duckworth, reflects on his experiences in various organizations where the need to justify the costs associated with UCD has been a recurring theme. This need often arises from a lack of understanding of the complexities involved in measuring impact, especially in large, multifaceted organizations. Duckworth emphasizes that the question of impact is frequently posed not out of genuine curiosity but as a means to justify budgetary decisions or to defend against potential cuts. He notes that in complex environments, the relationship between design efforts and tangible outcomes can be tenuous at best. For instance, while a designer may contribute to improving a service, attributing significant societal changes, such as reducing child poverty, to their work is unrealistic. The challenge lies in the fact that many designers lack the authority or influence to directly affect the outcomes that are measured. To navigate this landscape, Duckworth offers several strategies. First, he advises against getting caught up in the need to prove impact in situations where the request may be disingenuous. Instead, he encourages designers to focus on their work and the improvements they can make without overstating their individual contributions to complex outcomes. If faced with a legitimate request for justification, Duckworth suggests reversing the ask by engaging the requester in a dialogue about their expectations and understanding of impact. This can help clarify the disconnect that often exists between what is expected and what is delivered. Another key point is the importance of understanding how specific outputs contribute to broader outcomes. Duckworth advocates for creating a model that visually connects smaller design outputs to larger organizational goals. This approach allows teams to articulate their contributions more clearly and demonstrate how their work supports overarching objectives. Additionally, he highlights the need for teams to identify early indicators of impact, or "smoke signals," that can provide quick feedback on whether their efforts are making a difference. By focusing on smaller, more immediate outcomes, designers can build a narrative of success that contributes to larger goals over time. Communication is also crucial. Duckworth stresses the importance of consistently discussing how design work aligns with organizational objectives. By regularly sharing updates and insights, designers can ensure that their contributions are recognized and understood within the broader context of the organization. Furthermore, he encourages design teams to foster a culture of awareness regarding their impact. This involves training team members to articulate their contributions and holding them accountable for communicating their value effectively. Finally, Duckworth advises designers to seek out opportunities where their skills align with organizational needs, building relationships and trust that can facilitate greater impact in the future. By finding allies within the organization and demonstrating value in less-than-ideal situations, designers can pave the way for more significant contributions down the line. In summary, Duckworth's insights underscore the complexities of justifying design's impact in large organizations. By focusing on clear communication, understanding contributions to outcomes, and building relationships, designers can navigate these challenges and demonstrate their value effectively.
- Tuesday, May 28, 2024
Design systems built with proper affordances are the key to creating intuitive and versatile user interfaces. Designers can ensure that components are robust and flexible by clearly defining and implementing boundaries around their intended uses. Collaborating with product teams and applying data-informed design contributes to quantifying the impact of design decisions.
- Wednesday, April 17, 2024
Early in their careers, many designers follow a linear process like the double diamond model. However, experience teaches that such structures don't bind creativity - ideas can originate from any stage. Embracing flexibility and prioritizing critical criteria regardless of process stage fosters creativity and prevents the stifling effects of rigid methodologies.
- Thursday, March 21, 2024
The "me against the world" mentality that some engineers have is destructive. Openness about weaknesses creates trust and unity within a team. Leaders should embrace vulnerability and encourage authenticity, open communication, and learning within the company culture. Toxic team members should be addressed directly.
- Thursday, October 3, 2024
In the realm of UX design, professionals often find themselves balancing the intricate demands of user experience with the constraints of business and legal requirements. This duality requires a blend of creativity and precision, where even minor errors can lead to significant repercussions. A prevalent challenge within this field is the pressure to always be "right," which can foster a fear of making mistakes. However, it is crucial to recognize that design decisions are not immutable; what truly matters is how effectively these decisions address the underlying problems. A vital lesson in product design is that perfection is not a prerequisite for providing valuable insights. The essence of effective design lies in well-reasoned opinions that are informed by user research, UX principles, and data. When engaging in design discussions, it is important to express informed opinions, and if uncertainty arises, it is acceptable to acknowledge it while proposing hypotheses that can be tested. The best design solutions not only resolve user issues but also align with business objectives, striking a balance between user needs, technical feasibility, and strategic goals. Good design transcends personal preference; it is fundamentally about user effectiveness. Design choices should be substantiated by user research and established UX principles, such as Nielsen’s heuristics. This objective approach ensures that decisions are based on evidence rather than subjective tastes. Even aspects of visual design, like color schemes and layouts, should be justifiable through their impact on the overall user experience. Imposter syndrome is a common experience among designers, regardless of their level of expertise. This phenomenon manifests as self-doubt regarding one’s intellect, skills, or accomplishments, often leading to anxiety and a fear of being exposed as a fraud. It is essential to challenge this narrative, as many designers possess the qualifications and experience to contribute meaningfully. Design is inherently iterative, and occasional missteps are part of the learning process. The focus should be on growth and learning through each iteration. Reflecting on personal experiences, the author recounts a moment early in their current role when they contributed to improving a design component. Despite being a new team member, their input was valued and ultimately adopted, reinforcing the idea that all contributions are significant, regardless of seniority. This experience highlighted that one does not need to be perfectly right; rather, the goal is to propose sensible ideas that contribute to problem-solving. Ultimately, designers are not expected to achieve perfection. The key is to maintain a user-centered approach, clearly articulate design rationales, and remain open to learning from both successes and failures. Design is a continuous journey of learning and iteration. As designers, it is important to reflect on the motivations behind their work—whether it is enhancing user experience, driving business growth, or both—and to continually seek knowledge and practice articulating design decisions. The takeaway is that being reasonable in design discussions is more valuable than striving for an unattainable perfection.
- Friday, March 15, 2024
Software projects often fail due to hidden complexities and human factors rather than technical shortcomings. Overconfident developers can underestimate task complexity and the challenges of using new technologies or third-party dependencies. Inexperienced managers may prioritize personal ambitions over project success, lack firm leadership, or cave to every change imposed by higher-ups. Projects can become zombies, draining resources without delivering value, as stakeholders become reluctant to admit defeat due to fear or embarrassment.
- Tuesday, April 9, 2024
Architects should help guide engineering teams by making strategic, high-impact decisions while still allowing team members to have ownership of various parts of the team’s overall work. This means carefully considering decisions and their reversibility, along with documenting potential impact before acting.
- Friday, September 27, 2024
The article discusses the importance of design systems from a developer's perspective, emphasizing how they can enhance usability and streamline the development process. It begins with an analogy comparing the intuitive experience of riding a bicycle to the desired user experience in software applications. Just as riding a bike becomes second nature, the goal is to create software that users can navigate effortlessly. Design systems are presented as a solution to achieve this level of usability, allowing teams to build and ship applications quickly while maintaining consistency through standardized components. The piece highlights the potential pitfalls of poorly implemented design systems, which can hinder rather than help development. It stresses the need to treat design systems as products that require ongoing investment and maintenance to remain effective. A well-maintained design system can provide stability and speed up development, while a neglected one can lead to technical debt and inefficiencies. The article advocates for an iterative approach to building design systems, contrasting it with the traditional waterfall method. Developers are encouraged to focus on simplicity and to build design systems incrementally, using user feedback to guide improvements. The example of Slack illustrates this point, showing how the company managed to standardize its components without sacrificing development speed, ultimately leading to the creation of Slack Kit. Another critical aspect discussed is the necessity of maintaining design systems to prevent them from becoming obsolete. Developers often express skepticism about using design systems due to past experiences with poorly maintained products. The article suggests that design systems should be flexible and adaptable, allowing for both standardization and customization. The Spotify design system, Encore, is cited as an example of balancing consistency with the need for creative freedom. The importance of alignment between developers and designers is also emphasized. Effective communication and collaboration can prevent wasted effort and ensure that both teams are working towards the same goals. The article uses Airbnb's experience to illustrate how a shared visual language can enhance productivity and consistency across teams. Finally, the article encourages viewing design systems as basecamps for exploration rather than constraints on creativity. By providing a stable foundation, design systems can empower developers and designers to innovate and experiment without losing sight of consistency and usability. The piece concludes by promoting UXPin Merge as a tool that facilitates the creation of production-ready prototypes, further enhancing the design and development workflow.
- Thursday, May 9, 2024
Sharing your work is necessary for career growth and visibility, but can be intimidating. Some good ways to share your work more naturally include using demo sessions, sharing designs before implementation, using retrospectives to acknowledge your contributions, and posting on cross-team chat channels.
- Thursday, June 20, 2024
Enterprise architecture often suffers from common anti-patterns like blindly adopting trends from large tech companies, becoming too detached from daily development, or being seen solely as a career advancement for engineers. These can lead to misaligned initiatives, irrelevant solutions, and a lack of trust between architects and development teams. A successful architecture practice requires striking a balance between up-front design and agile iteration.
- Friday, April 26, 2024
Jim Nielsen discusses the limitations of the "LEGO" analogy for design systems, arguing that prefabricated components have less value in the age of generative AI and open-source libraries. Even with prefabricated components, custom "one-off" designs are still necessary for each product, and a successful design system needs more than just prefabrication and composition.
- Tuesday, March 12, 2024
Engineering crits at Figma are collaborative sessions designed to foster brainstorming, knowledge sharing, and problem-solving early in the development process. Inspired by design critiques, Figma uses FigJam to facilitate asynchronous feedback, ensuring everyone’s perspectives are included in the conversation. Unlike traditional reviews, engineering crits emphasize suggestions over mandates.
- Monday, September 30, 2024
Writing code for computers presents its own set of challenges, but crafting code that humans will interact with is an even more complex endeavor. Erik Bernhardsson emphasizes the intricacies involved in creating frameworks, libraries, APIs, and programming languages that are not only functional but also user-friendly. The process requires a deep understanding of both computer science and the psychology of how users think and learn. To begin with, the onboarding experience is crucial. Bernhardsson argues that getting started with a product should be considered an integral part of the product itself, rather than an afterthought. He highlights the importance of minimizing friction in the setup process, suggesting that developers should aim to make it as easy as possible for users to start using their tools. This is particularly important in a landscape saturated with development tools, where users have limited patience and energy to explore new options. Humans learn best through examples rather than abstract concepts. Bernhardsson critiques the common practice of structuring documentation around core concepts, advocating instead for a focus on practical examples that allow users to see how the tool works in action. By providing a variety of examples, users can find a starting point that resonates with their specific needs, making the learning process more intuitive. The concept of "falling into the pit of success" is another key idea. Bernhardsson notes that users often encounter errors while programming, which can lead to frustration. Therefore, it is essential to design tools that guide users back to success quickly. This can be achieved by providing helpful error messages, code snippets in exceptions, and warnings that anticipate user mistakes. Avoiding conceptual overload is also vital. Each new concept that users must learn adds friction to their experience. Bernhardsson suggests that tools should aim to reduce the number of concepts users need to grasp while still allowing for a wide range of capabilities. He recalls his own experience with React, where a few simple concepts enabled him to build complex applications, illustrating the power of simplicity in design. The "conceptual duck principle" emphasizes the importance of using familiar terminology. By naming new features in a way that aligns with users' existing mental models, developers can significantly reduce the cognitive load required to understand new tools. This approach fosters a smoother learning curve and enhances user experience. Programmability is another critical aspect of user-friendly design. Bernhardsson encourages developers to create frameworks that allow users to manipulate and extend functionality easily. By enabling users to programmatically interact with the tool, developers can tap into users' creativity and encourage innovative uses of the framework. When it comes to defaults and magic in programming tools, Bernhardsson advises caution. While it may be tempting to minimize user input through defaults, this can lead to confusion if users are unaware of the underlying options. He argues for a balance between convenience and clarity, suggesting that tools should be designed to be intuitive without sacrificing the ability to customize. In conclusion, writing code for humans is a multifaceted challenge that requires careful consideration of user experience. Bernhardsson touches on various strategies to enhance developer tools, such as ensuring immutability, avoiding unnecessary scaffolding, and creating fast feedback loops. He reflects on the difficulty of designing for first-time users, likening it to producing a pop song where the creator must continually consider the perspective of a new listener. This complexity is part of what drives Bernhardsson's passion for building developer tools, as he seeks to create experiences that resonate with users and facilitate their success.
- Monday, August 12, 2024
Programmers should embrace a mindset of skepticism and constant verification, as trusting abstractions can lead to unexpected problems. Abstractions, while necessary for efficient thinking, are often leaky and can fail in unpredictable ways, so it's important to understand the underlying mechanisms. That's why "trust, but verify” is necessary when working on a project with a lot of abstractions.